package com.pxxy.mapper;

import com.pxxy.entity.User;
import org.apache.ibatis.annotations.Param;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

public interface UserMapper {

    /*****
     * 持久化用户对象
     * @param user
     * @return
     */
    int save(User user);

    /****
     * 根据id来查询对象
     * @param id
     * @return
     */
    User findById(Serializable id);

    /****
     *
     * @param user
     * @return
     */
    int update(User user);

    /*****
     *
     * @param id
     * @return
     */
    int delete(Serializable id);

    /*****
     *
     * @return
     */
    List<User> findAll();


    //List<User> findByProperties();

    /*****
     *
     * @param username
     * @return
     */
    User findByUserName(String username);

    /******
     * 统计表中的记录数  [select count(*) from tableName]
     * @param tName
     * @return
     */
    int count(@Param("tableName") String tName);

    /******
     * 根据map中的不同条件来查询,如：
     *  key  ->   value
     *  lastLoginDate_begin      2020-5-22
     *  lastLoginDate_end      2020-5-24
     *  status    0
     * @param map
     * @return
     */
    List<User> findByProperties(Map<String, Object> map);
}
